Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

205
Views
Los eventos de desenfoque de Cypress (cuando la entrada pierde el foco) no se activan con "cypress run --browser firefox" sin cabeza, pero funcionan con "cypress open"

Estoy probando una aplicación Angular con Cypress 10.4. Hay una prueba que falla solo con Firefox headless porque no se actualiza un elemento que debería contener una suma calculada. Las sumas se calculan y actualizan correctamente con Chrome encabezado/sin encabezado y Firefox encabezado.

El flujo de trabajo que funciona es el siguiente:

  1. Escriba un número para #Expense_meter_start
  2. Cuando #Expense_meter_start pierde el foco (evento borroso), se realiza una solicitud POST y la suma se actualiza en la interfaz de usuario
  3. Escriba un número para #Expense_meter_start
  4. Cuando #Expense_meter_start pierde el foco, se realiza una solicitud POST y la suma se actualiza en la interfaz de usuario
  5. El elemento que contiene la suma se puede afirmar

Cuando ejecuto "cypress open" y ejecuto la prueba con Firefox pasa la prueba. Puedo ver las solicitudes POST realizadas cuando los elementos pierden el foco.

Problema: cuando ejecuto "cypress run --browser firefox", la prueba falla cada vez. La suma no es la esperada. Lo que probé: -Tomé capturas de pantalla y validé que la suma no se actualice, incluso si los campos tienen valores correctos. -Creé una intercepción para las llamadas POST API. Las llamadas no ocurren con "cypress run --browser firefox". Pero las mismas llamadas están ocurriendo cuando se usa "ciprés abierto".

 describe("Fails on headless Firefox", () => { it("tests blur events", () => { cy.visit("/"); cy.intercept({ method: 'GET', url: '**/api/invoiceCalls/*' }).as("invoiceCalls"); // Click to create new Invoice cy.contains("New invoice").click(); // Save on dialog cy.get('.--primary > .button-container > .button-text').click(); cy.wait("@invoiceCalls"); // Type start amount cy.get("#Expense_meter_start").click().clear().type("200000"); // When this element loses focus aka blur event happens, POST call should happen // Type end amount cy.get("#Expense_meter_end").click().clear().type("200050"); // When this element loses focus aka blur event happens, POST call should happen // Type explanation of driving route cy.get("#Travel_expense_route").click().clear().type("Koti-Lentokenttä"); // Check that sum is calculated cy.get("#Sum").should('have.text','50'); // Click Save cy.get('#Save').click(); });
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Un par de sugerencias, Cypress tiene un comando .blur()

 // When this element loses focus aka blur event happens, POST call should happen cy.get("#Expense_meter_start") .click() .clear() .type("200000") .blur() // explicitly blur this element

o usa {enter}

 // When this element loses focus aka blur event happens, POST call should happen cy.get("#Expense_meter_start") .click() .clear() .type("200000{enter}") // blur this element with enter key
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!